// 合并文本文件
import fs from "node:fs";

// 第一步：读取文件 first.js
fs.readFile('first.js', 'utf-8', (err, data1) => {
    if (err) {
        // 发生错误
        throw err;
    }
    else {
        // 读取文件 printText.js
        fs.readFile('printText.cjs', 'utf-8', (err, data2) => {
            if (err) {
                // 发生错误
                throw err;
            }
            else {
                // 写文件 merge.txt
                fs.writeFile("merge.txt", data1 + data2, (err) => {
                    if (err) throw err;
                    console.log("文件已被保存");
                })
            }
        })
    }
})

// 使用 promise 封装异步函数
function readFile(path, options) {
    return new Promise((resolve, reject) => {
        fs.readFile(path, options, (err, data) => {
            if (err) reject(err);
            else resolve(data);
        })
    })
}
function writeFile(path, data) {
    return new Promise((resolve, reject) => {
        fs.writeFile(path, data, (err) => {
            if (err) reject(err);
            else resolve();
        })
    })
}

// 使用 await 等待异步函数执行完成
const data1 = await readFile('first.js', 'utf-8');
const data2 = await readFile('printText.cjs', 'utf-8');
await writeFile("merge2.txt", data1 + data2);
console.log("文件已被保存");